You're right, these companies do have the right to censor speech that they disagree with. However, if they do that, then they are responsible for any speech that they do not censor. So for instance, if someone posts a libelous statement on Reddit, and Reddit doesn't remove that statement, then victim of libel should be allowed to sue Reddit directly, instead of just suing whoever made that post.