Silvestre out for three weeks