I'm pretty sure that's the only way to do it. There's no way to select groups of elements (in your case, groups of 3) and then alternate with something like an nth-of-type(odd) selector.
i think you'll need to use either javascript or php with a $counter variable and the % operator in something like php if you have to accommodate lame, older browsers.
I'm not exactly sure what you want to do here, but there are many different ways to do this. Are you using php or is this in a template of another script?