I think 3 hours of high productivity is maximum for me too, the thing is it is very difficult to reach really high productivity, so I can wrap up my work in maybe 4-5 hours writing SQL and report (exclude the meetings and break/etc.) and still have energy to write code in my spare time for around 1-2 hours. How and when to achieve high productivity and enter the flow are pretty random for me.
If you can reach high productivity for 3 straight hours a day I'd envy you, because you probably achieve more than people (like me) who work 5-6 hours in sub-prime conditions. I'd rather to work full of energy for 3 hours during the morning, take break in the afternoon, and come back for another 1-2 hours. Much more enjoyable.
BTW I found that useless meetings drain energy really FAST.