OP , if you don't want to leave your DH , you need to think about how to keep your DS safe . Could he go and live with your family, perhaps your parents or a sibling? Do you have anyone who would do this ?
Because once SS get involved , the first thing they will look for is to place him with his extended family . What about your ILs ? I wasn't clear from your post if they are drug users as well . If so , they will not be considered suitable .
You don't want him to end up in foster care .
Once your son is safe, , then you can concentrate on fixing your Dhs addiction. Of course you can't ever fix anyone else, but at least you can hang around for a few years hoping that he will change .
If your son is living with your family, I'm sure you will still be able to see him.
If your son is in foster care , then you will get regular access to him in the short and medium term. In the longer term , SS will need to consider if you ever want him back and if you don't, they will look for a permanent placement for him . This will probably be adoption, given that he's only 3.
This may seem harsh, but a three year old can't be expected to put his life on hold for the years in the hope that his mother may finally decide to leave his violent drug using father . Is had to be about the child's best interests .
Good luck whatever you decide