I also faced this situation when i have angular button. I Solved it by using PolygonCollider2D component, but the problem is, still there were overlapping areas in the angular buttons. To fix this I edited polygon collider component from inspector. There is also a possibility to detect which buttons were touched using Physics2D.OverlapAreaAll and find the most appropriate one based on criteria. But i personally feel its too hard to go with it if you can easily edit the collider component, since it is one time effort so it will not cost for performance each time as in the other case i discussed.
If your button relies on an image to detect the click (with the RaycastTarget option checked), you can adjust the value of a threshold which specifies the minimum alpha a pixel must have for the event to considered a “hit” on the Image. See the documentation : Image.alphaHitTestMinimumThreshold