I’m with Karin on this one.
Consider both your short term vs. long term revenue. According to your contract, you do have the right to keep their money. But if you do that, you may lose a client who is otherwise potentially in with you for the long haul. Maybe credit them towards the next series of small-group sessions.
I have made exceptions for extenuating circumstances (i.e. a client who broke her wrist in a group-ex class, I’ve extended her small-group sessions until she is cleared again for bodyweight exercise). I can do that since I max out my class size at 6 people but I can actually handle 8, so bumping a client into a future session doesn’t cost me revenue.
Before your next session starts, you might want to reconsider / rewrite your policy. You could say something like if someone has to cancel and there’s a wait list, they can transfer their sessions to someone on the wait list without penalty. If they have to cancel for a health or emergency reason, and they notify you XXX days in advance, they can credit XXX towards the next series.