Passing set fact value to ami copy

You haven’t said what the problem is, or shown any results, neither correct nor errors. You have described what your three tasks are supposed to do, but with no indication as to which of those tasks are failing or why. We have no way of guessing for example whether you are experiencing a problem with AWS or your Ansible tasks.
We’d be happy to help you, but please don’t make us guess about the parts you aren’t showing us.

Are all these plays in the same playbook or separate playbooks? If you are using ansible tower and separate playbooks, then you need to set_stats vs set_fact. The set_fact module only provides values for the remainder of the current playbook. The set_stats module creates artifacts that are returned to ansible tower which then provides them as additional extra_vars to downstream playbooks in an ansible tower workflow stream.