In fact, they can actually go further if the person does not give notice according to their notice period as set out in their contract - they can actually employ a temporary staff member from a recruitment agency and charge that to the employee.
This rarely happens, but is legal for an employer to pursue.
I'm not so sure about this as others seem to be. As a general principle employees should be paid for the work done (& I would expect this to include time spent training if it occurred after the employment start date in the contract).
If an employee then leaves without giving notice he/she has breached the employment contract & the employer can attempt to get redress from them for any costs the employer incurs as a result. Normally, as Vic says, this would be the cost of a replacement employee or agency worker to cover the notice period. Those costs may be more or less than the wages owed to the employee who left without giving notice.
I think it is open to argument that the employment contract cannot legally deny the employee the right to be paid for work done - in other words payment of wages has to be separated from any claim the employer has for the breach of contract. A blanket provision such as you describe - wages will be withheld unless notice is given - seems to me to be potentially unfair & therefore open to challenge.
This may well not help your friend because the employer may well be justified in arguing that her 3 days pay is less than the costs they have incurred as a result of her breach. If she wants to take it further she should ring the ACAS helpline - make sure she has the contract & can give them the exact wording relating to this.