If you want to render 3D I suggest that you take a look at WebGL.
Non-WebGL answer:
If you really want to go without you start by fixing your current bugs before moving on to faces. If you can place a point correctly it shouldn't be hard to make uni-coloured faces. You simply make a path between 3 points, and fill it.
Tip: You only need to do translation from 3D to screen coordinates in a single piece of code which you can reuse for points, lines and faces.
Problems a bit further down the road:
Polygons that are partly in view, especially those that have a point behind or at the view plane can be tricky to deal with, but it's still reasonably possible if you know what you are doing.
Z-order, that is figuring which surfaces should be on the top, is hell, maybe you can for your specific scenes figure a way to do it reasonably.
Texture is also going to be pretty hard to do well.