I don't think Zarya really has anything that can be considered a counter, but it's hard to justify nerfing her, I just don't see her being that overpowered.
Pharah is okay, but it's not exactly a hard one. Zarya's large HP pool+shield make it pretty hard for her to kill Zarya while staying out of range. Pharah has a pretty meager 120 DPS if she hits all her rockets directly, which is pretty much impossible at that range. Reaper is not a counter, of course he can win at barrel-stuffing range, but Zarya's shield lasts 2 seconds and she does 150 DPS at max charge, doesn't take a genius to realize that Reaper can definitely lose in quite a few situations. Widowmaker is not a counter either, of course she can headshot a Zary and do 75% of her hp, but a counter this does not make. Is Widow a counter to practically every hero in the game that she outranges? Obviously no, she is considered a counter to characters that are reliant on making themselves easy to hit to do their job. Pharah is the main example, and Hanzo is also probably another because of his self-slow when drawing. There's nothing exceptional about how Zarya plays that would make her exposed to Widowmaker. If anything the shield makes her more resistant to Widow than most, as she can choose to step out into Widow's line of sight safely every 10 seconds.
Tracer is possibly the best bet for countering Zarya I think. Tracer kills by whittling the opponent down over a few seconds, rather than 1 fat burst that can be parried by the shield, and because of Zarya's lack of burst tracer can user her rewind to give herself a lot of effective health. Tracer is also capable of safely forcing the shield then using her ult to kill Zarya. Still, max charge Zarya does 150 DPS, 1 second of the beam will kill her, that's extremely dangerous. Hanzo, in the hands of a master is also a good character against Zarya I feel like. He is most effective in a midrange sweet spot that's too close for Widow to safely get full-charge headshots off, but too far for Zarya's beam to reach. Soldier 76 is another midrange damage character, but often he is within Zarya's beam range, because he has damage fall off unlike Hanzo. However Hanzo is Hanzo and he needs to have a very skilled user to be worth picking.
Zarya's counters are dubious, but despite this I dont think she overperforms that heavily in competitive games. She can't be easily countered, but she doesn't really effortlessly counter other characters. Tracer, Reaper, Soldier, Roadhog, Reinhardt, Pharah, Junkrat, Lucio, Mercy, etc. None of these characters get outright beaten by Zarya, and can win against her in plenty of situations or aren't prevented from doing their jobs. I have yet to see egregious amounts of Zarya picks or her just being overpowered, her damage and defenses are ultimately limited and proper positioning, not fighting her too close and forcing her into the open to deal damage overwhelms her.