You need to use capture groups and match characters without words between words:
import re
s = 'How are you guys today'
print(re.sub(r'(\w+)(\W+)(\w+)', r'\3\2\1', s))
See a Python demo
The sample (\w+)(\W+)(\w+)will fit and capture 3 groups:
(\w+)- group 1 (link to a \1 numbered trackback from a replacement template): one or more character words(\w+) - 2 ( \2):(\w+) - 3 ( \3):