The precondition in takeAll requires that every car is in every location. More precisely, the condition says that, for all cars, and for all locations, the car is in that location. This is too strict, as you seem to assume that a car can be in at most one location at a time.
An obvious fix is to require that every car is in some location. So the condition would have the structure (forall (?c - car) (exists (?p - place) (and (at ?c ?p) (not (taken ?))))).
Or, would it be OK that this action is possible even if no car can be taken? If so, get rid of the precondition, and have the effect part be something like (forall (?c - car ?p - place) (when (and (at ?c ?p) (not (taken ?c))) (and (not (at ?c ?p)) (taken ?c)))). So all those cars will be taken that can be taken.