Aside from the fact that you were outclassed, there are a couple of things you can do or learn how to do.
On your serve, the "easiest" thing to do is to serve short topspin, preferably to the forehand. I would say 90% of players at 2000 are just terrible at this. Also, it will eliminate the pushing and short balls entirely (unless they make 2500 level pushes). They will have to flick the ball, and you will only have to worry about backhand, forehand, and middle. Even better if you serve it with the lefty's sidespin. If they decide not to flick the ball, you will a decently high ball to attack.
If you don't know how to serve short topspin with sidespin, you should definitely add this to your skillset. You will need lots of "tools" like this as you try to improve at table tennis.
On his serve, you need to drill some short forehand push, long backhand push combinations. This is a very common combination and is something you should definitely get used to because other high level players will do this too. Then, you need to drill the other 2 as well, short backhand and long forehand, although this is less common. Once you are confident in this, you now are able to short push against his serve.
As for pushing long, you need to get better at blocking. You didn't say anything at all about how you miss your blocks against his loops. You just say it's powerful, which tells me you didn't even think about it, and probably didn't understand it either. There are many things you can do to make their loop less powerful and increase your success at blocking. You can push very wide and you will almost always expect a loop in the same direction. Pushing as low as possible is a great way to prevent the opponent from looping fast, and a great way to earn "passive income" in points throughout a match (this requires you to read his serve perfectly though). Don't feel pressured to push spinny or fast(unless it is consistently winning), just do so when it is convenient (I find trying to push spinny or fast when it is inconvenient to do so just loses you the point). I find spending effort into reading the opponent's serve and pushing low is way more important than trying to pushing any kind of length or spin.
Reading his loop as best you can will tell you how to block and increase your chances as well. Whether he brushed the ball or impacted it, if he did brush, how fast did he brush, how high is his loop's trajectory, how deep will the shot go, where will the ball be when it reaches my hitting zone, is the ball curving: these are some mental questions you can ask when you practice blocking. You want to look for this information in the game so you know what loop is coming. Keeping your hand up, and looking at the ball, and even rotating my head down when the ball lands on the table really helped me. Personally, the things I look for in my opponent's loop is how fast their arm moved, the max height of the loop as it crosses the net, and where the ball will be when it enters my blocking area.
Maybe some of the better blockers here can explain other tips, since I am not a blocker.