I think the two major ways I'd approach it is through:
1) Changing up the weapons so their projectiles travel differently. Maybe change the lazer into a flamethrower that is close range, but hits a bunch of enemies at once. Or maybe have one gun that is objectively the best, but has almost no ammo. Things like that can change things up a lot. Other than that-
2) I think you were spot on about varying the challenges enemies provide. I'd design weapons that you actively think are fun and with great feedback, and then make enemies while thinking how they'd interact with each weapon type. In the flamethrower example, you can have a swarming enemy with a ton of low health weapons the flamethrower hard counters.
Anyways, I don't play a lot of shooters, so my ideas are probably not the best, but that's the best I got as far as ideas go!