At 3 weeks it's impossible to tell, at least for me. And the sizes at this point won't give you a clue to sex. However, it's a good idea to separate the little ones because the bigger boys secrete a hormone that suppresses the growth of the smaller fish. When the small ones are removed, that hormone is not present so they can catch up in their growth.
At 6 weeks you will start to see some aggression and need to begin separating further. Serious aggression is a clue to a fish being male, but not a sure thing - females can be really dominant.
At about 2-2.5 months you'll start seeing clear differentiation in body and fin shape, the females will have egg spots on their bellies and some will have vertical stripes; and the males will start to have enough tail branching that you can just tell. For me, it was practically an overnight thing where *bam* the males were suddenly obvious and their growth seemed to reach hyperspeed.