It's just a slight misunderstanding. Visa (or Amex/Mastercard/other card networks) don't take 3%, but payment processors take a slice which is in that ballpark. To a business, all that really matters is when you accept a credit card payment you kiss a few percentage points goodbye, so it's easy to misconstrue as the card network taking that cut.
If you look at Square or Stripe, for example, the fees are way south of 3%. Sure the banks, processors and gateways take a fee but it's nowhere near a total of 3% these days. That was more my point.
The lions share is going back to whoever issued you a credit card. If its say an airline card, that'd be rewards 2 which ranges from 1.65% + $0.10 per transaction all the way up to 2.7% + $0.10. Then you add on network & platform fees (0.1% + $0.06 per transaction) and whatever minuscule profit margin your ISO/MSP can get and your at 1.5% to 2% on average.
Rarely will a business get the 2.3% rate, that is purely a temporary promotion for supermarkets that are new to American Express. Also, Amex acts as the bank, with the same rewards programs and incentives to retain customers.