Ideally, you could add a unique ID for each slot. However, if that's not possible, you can do this:
ClearCollect(colBookedUnique,AddColumns(colBooked,"laptopSlotId",Concatenate(LaptopID,BookedOn,TimeSlot)));
With(
{
colToCancelUnique: AddColumns(colToCancel,"laptopSlotId",Concatenate(LaptopID,BookedOn,TimeSlot))
},
RemoveIf(
colBookedUnique, laptopSlotId in colToCancelUnique.laptopSlotId)
);
ClearCollect(colBooked,DropColumns(colBookedUnique,"laptopSlotId"));
This creates a unique column by concatenating the timeslot, date, and laptop ID columns together, filters that temporary collection, then ClearCollect()s it into the colBooked collection.