Вы можете либо указать пунктуацию, которую вы хотите удалить вручную, как в [._,] или поставить функцию вместо строки замены:
[._,]
re.sub(r"\p{P}", lambda m: "-" if m.group(0) == "-" else "", text)