There are a few ways to do it, however in order to have the code be more flexible i would recommend:
If Input.is_action_just_pressed() and $Area2D.get_overlapping_areas.size() > 0:
$Area2D refers to the area node which is a child of your player node, and it needs to collide with an area2d node which is a child of the other character node.
Then under the if statement write:
If $Area2D.get_overlapping_areas()[0].has_method("open_popup"):
$Area2D.get_overlapping_areas()[0].open_popup()
This will run the "open_popup" (feel free to rename) function in the scrip attached to the area node under the other character. If you want to access the script attached to the character node instead of their area node:
If $Area2D.get_overlapping_areas()[0].get_parent().has_method("open_popup"):
$Area2D.get_overlapping_areas()[0].get_parent().open_popup()
I hope that wasn't too confusing of an explanation