Brainstorming: Cancellations in bookings

Hello! I’m looking for ideas from anyone who offers services in a similar fashion as we do:

My client has a puppy school and we host weekly socializations sessions where puppies get dropped off. People book these sessions by purchasing a pricing plan of at least 6 sessions, and then proceed to book dates in the future, knowing how quickly spots go.

The issue however is that a lot of people book more so “in case” they can attend… and this results in them cancelling or rescheduling the week of the session. We currently have a 24hr cancellation policy that prevents them from cancelling and we might increase that to 48 hours however in either case, it’s often just not enough time for someone else to take their spot.

Is there a better way that we can go about this to ensure that less cancellations happen or to make it so people can only book only with X-amount of time in advance??