From what I've read, the MET for moderate intensity activities is between 3 and 6, walking 3 mph being 3.3 for example. It seems to me that this number must vary from person to person. Is there a way for me to calculate my MET for, say, walking 3 mph based on a percentage of max heart rate or, say an estimate of VO2 max?
You can make an estimate using your VO2 max. If you don't have access to a lab to get it measured, you can estimate it using a couple of different formulae.
Once you have your VO2 max, divide it by 3.5 to get the mets that number represents. That's your max mets achievable, so if you are running at 70% of maximum, you're working at 70% maximum mets.
So, for example last time I took a max HR (After running hill intervals) I was at 193, and my resting HR was around 50 at the time. This gives me 3.86 x 15 = theoretical VO2 max of 57.9, which gives me a mets of 16.5 for that workload.
My last race pace was 7:00 mile pace for 5 miles, which gives me 2759 meters for 12 minutes. 2759 - 500 = 2259 / 45 = puts my theoretical VO2 at 50.2, so you can see that it's not really an easy number to estimate. I'd probably avg the two and go with a VO2 of 54ish. That would give me a theoretical max met workload of 15.4 mets.