Por que entre el padding y width suman más que el contenedor.
Pruba con esto:
Código:
#col1 {
width:32%;
background: yellow;
float:left;
padding: 1%;
}
#col2 {
width:31%;
background: green;
float:left;
padding: 1%;
}
#col3 {
width:31%;
background: orange;
float:left;
padding: 1%;
}