How to smooth a cone side without changing its shape?
The easiest way is to actually use a cylinder. you can then shrink the top to a very small size in order to make it feel like a cone. Then add an edge split modifier and the SubSurf. 
The reason a cylinder is better is that the edge split doesn't work really well for triangles, and the cone basemesh is made of triangles. (You can't add edge loops on a cone).



On the screenshot I made the cylinder top big so you can see it's actually a cylinder but feel free to shrink the size as you want.