I'm not that experienced, so there may be better advice from other forumites.
First thing that jumps out at me is that you're probably not doing enough miles, to get sub 3 I would have though you'd be in the 5 -6 times a week and the 60 to 70 miles per week range.
You haven't given much detail of how you ran the marathons, but from your times I'd suspect that you really suffered in the second half and had a big positive splti in your times. This would suggest its your endurance that needs improving, so more miles could be the answer