I am interested to know, whether an advance stage PhD student (without thesis submission) can apply for post doc positions or not?
For postdocs that are publicly advertised, read the advertisement. Typically it will say something like "Candidate must have completed PhD before starting date MM-DD-YYYY." That means you can apply before you are finished, but your application will have to convince them that you will be done before MM-DD-YYYY. If you're offered the job but then don't finish your degree on time, you may lose the job. (It is possible, but not guaranteed, that you could be given the option to delay your start until after you defend; or to be hired under a different title, usually with lower pay, until you defend.)
For postdocs that are not publicly advertised, where you have to contact the PI to express interest, your initial contact message can say something like "I am finishing my PhD at (name of school), working with (name of advisor), and I expect to defend in MM-YYYY." If they respond positively, you'll know that's acceptable, and can go on with a full application if needed.
Yes of course, not only you can but you should apply for postdoc positions before defending your phd, if you plan to stay in academia.
Postdoc positions are generally advertised several months before the starting date, so as long as you can convince your futur employer than you will defend your phd in due time it should be fine.
Moreover finding a postdoc position is much easier when you are a phd student (even before thesis submission) with money to travel to conferences, an academic email address, people around you to advise you and write recommendation letters for you, than when you are an unemployed doctor!