There's really no set time or frequency to breastfeeding 'on demand'. There's lots of strange advice out there about ways to get your bf infant to sleep longer, but really I think most 3mo olds just aren't in a developmental place to easily take consolidated naps. I believe the "norm" for that age is 30min-2h naps 1-2h apart during the day. It's rough, but not really indicative of something wrong, and development is so rapid and variable at 3 months that the range of "normal" is enormous.
Nor is high weight gain an indicator of how often they 'should' be eating. Ebf infants fed on demand will basically drink milk when they're hungry/thirsty until they're not anymore; unless there's an illness, they're quite good at self-regulation.
At 3mo, I would say that feeding every 3h is lucky and that 2h is closer to "average". It's a rare bf baby that can actually go 4h between feeds; trying to force or too strongly encourage that if they're asking to nurse more often can cause problems such as failure to thrive. Give it time. Mine went through a lot of crap-nap stages, but he eventually naturally consolidated them and is sleeping longer stretches now. (And now that I've typed that, I just know we're in for a crazy night, lol.)