A simpler variant than sprintf, that works even if variables aren't using $ names - just bracket them:
gawk --posix 'BEGIN { v1="hello ";v2="world"; v3=(v1)(v2); print v3;}' hello world