Sorry for wasting time, worked it out. Was pretty obvious but something else in my style was messing it up.
It doesn't expand div2 but puts white space between div2 & div3 which in effect is the same.
====EDITED TO ADD MORE====
Problem not actually solved, if div2 has too much content it flows over div3, instead of applying for example a scrollbar (overflow: scroll;) any suggestions?