It should be possible to simply define a float array[8], if not just define it outside (but obviously not as const(ant)) where you set the mat... matrices and set that array to the appropriate content in the pixel shader.
Btw. there's pretty much no reason to support anything below shader model 3.0 anymore. I pursued a sm 2.0 for my game too but one day simply abandoned it because it was way too limiting, the percentage of users, according to a steam survey, dropped from like 9 to ~2% or something like that, too (and those are most certainly not able to run your/ my game anyway).