First we have to know how carry can be generated.
1) If we add 2-bits carry can only be generated if both digits are 1.
so c=a0b0
2) If we add two 2-bit numbers then carry can be generated in two cases ,
a)MSB of both number is 1
b)One MSB is 0 and Other one is 1 and both a0 and b0 are =1
so C=a1b1 + (a1+b1)a0b0
3) If we add two 3-bit numbers then carry can be generated in 3 cases ,
a) MSB of both numbers is = 1
b) MSB of one of the digit is 1 and a1 and b1 both are 1.
c) MSB of one of the digit is 1 and other MSB=0 and one of a1 , b1 is 1 and other 0 but LSB of both digit must be 1
so C= a2b2 + (a2+b2)a1b1 + (a2+b2)(a1+b1)a0b0