Hide answer & extension
I will use R, B and G to represent the heavy weights and r, b and g to represent the lighter weights. There are a few ways of doing this, the first way I found was the following method.
First, put one red and one blue on both ends of the scale. Either (a) you have both heavy weights on one side, so have RB against rb and the RB side is heavier; or (b) there is one heavy weight on each side, so you have Rb against rB and the scales will balance.
If (a), you will know which red and blue weights are the heaviest. You can then weigh the green weights against each other and you have found all three heavy weights.
If (b), then you know that the red on one side of the scale is equal to the blue on the other side. You can then put one red and one green on both ends of the scale, and apply the same logic to work out which blues and reds are equal, and you are done.
Interestingly, if the scales balance on both weighings, then you will know which weights are equal to each other, but you will not know which three are the heavier.
Extension
You have \(2n\) weights. Two of them are colour 1, two are colour 2, ..., two are colour \(n\). One weight of each colour is heavier than the other; the \(n\) heavy weights all weigh the same, and the \(n\) lighter weights also weigh the same.
How many times do you need to use the sales to split the weights into two sets by weight?