The specifics of the necessary code will depend on what form your data is in when you load it into R. For now, I've assumed that we're starting with list_1 and list_2.
library(tidyverse)
# Change the name of the column with the data values to "data"
# Add a column with the sex of the individuals
list_1 = list_1 %>% map(~.x %>% set_names("data") %>% mutate(sex="Male"))
list_2 = list_2 %>% map(~.x %>% set_names("data") %>% mutate(sex="Female"))
# Combine each list into a single data frame with an added column (called "source")
# giving the number of the list element (which we'll use to plot corresponding
# data series of male and female) and then bind the two separate data frames
# into a single data frame
df = list(list_1, list_2) %>%
map_df(~bind_rows(.x, .id="source"))
Now we have a single data frame for plotting.
p = df %>%
ggplot(aes(source, data, colour=sex)) +
geom_boxplot(width=0.5)
p

However, when converting it to a plotly plot, the paired boxplots now overlap. I'm not sure how to fix that, as I haven't used plotly very much, but hopefully someone will come along with a solution.
plotly::ggplotly(p)
As a hack for ggplotly, you can manually dodge the bars:
p = df %>%
mutate(source = as.numeric(source) + ifelse(sex=="Male", 0.2, -0.2)) %>%
ggplot(aes(source, data, colour=sex, group=interaction(sex, source))) +
geom_boxplot()
plotly::ggplotly(p)