Попробуй покрути такую конструкцию. Функция start получил ID после нажатия /start после предложит открыть профиль. Для каждого пользователя она будет уникальная, так как мы подставляем полученный ID в его же запрос. Таким образом она станет уникальная для каждого пользователя)
from telegram import Update
from telegram.ext import Updater, CommandHandler, CallbackContext
def start(update: Update, context: CallbackContext):
user_id = update.effective_user.id
profile_link = f"tg://user?id={user_id}"
update.message.reply_text(f"Привет, {update.effective_user.first_name}!\n"
f"Нажмите на ссылку, чтобы перейти в свой профиль: {profile_link}")
def main():
updater = Updater("твой_токен", use_context=True)
dp = updater.dispatcher
dp.add_handler(CommandHandler("start", start))
# Запускаем бота.
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()